#pragma once
#include "stdafx.h"
#include "HookFunctions.h"

HANDLE WINAPI MyHeapCreate( DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize );

BOOL   WINAPI MyHeapDestroy(HANDLE hHeap );

LPVOID WINAPI MyHeapAlloc( IN HANDLE hHeap,
                           IN DWORD dwFlags,
                           IN SIZE_T dwBytes );


LPVOID WINAPI MyHeapReAlloc( HANDLE hHeap,
                           DWORD dwFlags,
                           LPVOID lpMem,
                           SIZE_T dwBytes );



LPVOID WINAPI MyVirtualAlloc( LPVOID lpAddress,
    SIZE_T dwSize, DWORD flAllocationType,
    DWORD flProtect );


BOOL WINAPI MyVirtualFree( LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType );


PVOID WINAPI MyVirtualAllocEx( HANDLE hProcess, LPVOID lpAddress,
                                SIZE_T dwSize, DWORD flAllocationType,
                                DWORD flProtect );


BOOL WINAPI MyVirtualFreeEx( HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType );


BOOL WINAPI MyHeapFree(  HANDLE hHeap,  DWORD dwFlags,  LPVOID lpMem );

HANDLE WINAPI MyGlobalFree( HGLOBAL hMem );

HLOCAL WINAPI MyLocalFree(HLOCAL hMem );

LPVOID WINAPI MyCoTaskMemAlloc( SIZE_T cb);

LPVOID WINAPI MyCoTaskMemRealloc(LPVOID pv, SIZE_T cb);

void   WINAPI MyCoTaskMemFree( LPVOID pv );

LPVOID WINAPI MyMapViewOfFileEx( HANDLE hFileMappingObject, DWORD dwDesiredAccess,
    DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap, LPVOID lpBaseAddress );

LPVOID WINAPI MyMapViewOfFile( HANDLE hFileMappingObject, DWORD dwDesiredAccess,
    DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap );

BOOL WINAPI MyUnmapViewOfFile( LPCVOID lpBaseAddress );